AMI共有の落とし穴、コピーじゃなくて共有だよ
※タイトルが言いたいことの全てです!が、それじゃちょっと物足りないので補足します。
みなさん、AMI(Amazonマシンイメージ)の共有機能はご存知でしょうか??
この機能を利用すれば、アカウントを跨いでAMIを共有することができます。開発アカウントで作ったAMIを本番アカウントでも利用したい! なんて時に便利な機能です。
ですが、この機能にはちょっとした落とし穴があります。そう、AMIはコピーじゃなくて共有なのです。
つまり以下のようなオペレーションをとった場合
- アカウントAのAMIをアカウントBに共有
- アカウントAでAMIを削除
アカウントBからは共有されたAMIが見えなくなります。
うーん、それは困まる、アカウントを跨いでAMIをコピーすることはできないものか。。
という方もいらっしゃいますよね??
そこで本日はアカウントを跨いでAMIをコピーする方法を紹介したいと思います。やることは AMIの共有→AMIからEC2起動→AMIの取得 それだけです。
やってみた
AMI共有(アカウントAの作業)
以下を参考にアカウントAのAMIをプライベートイメージとしてアカウントBに共有します。
アカウントAからアカウントBにAMIを共有するとアカウントAでは以下のような状態となります。
アカウントBでは以下のような状態となります。
共有されたAMIからEC2を起動(アカウントBの作業)
共有されたAMIを指定しEC2を起動します。
AMIを取得(アカウントBの作業)
起動したEC2からAMIを取得します。
所有者がアカウントBとなるAMIが作成されました!!
以上!!
おまけ
アカウントBに共有されたAMIを単純にコピーしようとしたところ You do not have permission to access the storage of this ami
というエラーが発生しました。
AMIのオーナーがアカウントBではないから当然ですね。今の所、アカウントを跨いでAMIをコピーするには上記のオペレーションしかなさそうです。
みなさま落とし穴にはハマらないように!!